home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #9
/
Amiga Plus CD - 2004 - No. 09.iso
/
amigaplus
/
games
/
wormwars
/
source
/
engine.h
< prev
next >
Wrap
C/C++ Source or Header
|
2004-08-03
|
4KB
|
137 lines
#define OTTER_UP 0
#define OTTER_DOWN 1
#define OTTER_LEFT 2
#define OTTER_RIGHT 3
#define NOSE 2 // if (NOSE > PROTECTORS) then nose is disabled
#define WORMQUEUELIMIT 15
#define DOGQUEUELIMIT 120
#define LIFEMODULO 1000
#define TIMELIMIT 599 // 9:99
#define SECONDSPERLEVEL 120 // assert(SECONDSPERLEVEL <= TIMELIMIT);
#define WEIGHT 5
#define ENCLOSURE_MIN 2 // minimum size of enclosure (interior area) (must be >= 2!)
#define ENCLOSURE_MAX 20 // maximum size of enclosure (interior area)
// dog dormancy
#define DORMANT 0
#define AWAKENING 1
#define CHASING 10
// population limits
#define CREATURES 50
#define MAGNETS 50
#define PROTECTORS 2 // <=4!
#define ANIMSPEED_BANANA 6
#define ANIMSPEED_BIRD 3
#define ANIMSPEED_MISSILE 4
#define SPEED_MAGNET 9
#define SPEED_PROTECTOR 12
#define DISTANCE_FAST 4
#define DISTANCE_BIRD 4
#define DISTANCE_GIRAFFE 5
#define DISTANCE_MOUSE 10
#define DISTANCE_NORMAL 3
#define DISTANCE_NOSE 4
#define DISTANCE_SLOW 2
#define POINTS_EMPTY 1
#define POINTS_SILVER 5
#define POINTS_GOLD 10
#define POINTS_BANANA 20
#define POINTS_CHERRY 50
#define POINTS_LETTER 100
#define POINTS_GRAVE 100
#define POINTS_FLOWER 100
#define ADD_AMMO 5 // in bullets
#define ADD_ARMOUR 25 // in VERYSLOWs
#define ADD_CLOCK 30 // in seconds
#define ADD_CUTTER 30 // in VERYSLOWs
#define ADD_GLOW 30 // in VERYSLOWs
#define ADD_ICE 10 // in VERYSLOWs
#define ADD_MINIHEALER 5 // in lives
#define ADD_MINIBOMB 5 // in squares radius
#define ADD_SUPERBOMB 10 // in squares radius
#define ADD_SUPERHEALER 20 // in lives
#define ADD_TREASURE 10 // in seconds
#define RAND_ARMOUR 30
#define RAND_CLOCK 30
#define RAND_CUTTER 25
#define RAND_GLOW 50
#define RAND_ICE 5
#define RAND_MINIBOMB 15
#define RAND_SUPERBOMB 30
#define RAND_TREASURE 10
#define AMMOLIMIT 100
#define ARMOURLIMIT 100
#define CUTTERLIMIT 100
#define GLOWLIMIT 100
#define STARTLIVES 100
#define LIVESLIMIT 150
#define MULTILIMIT 8 /* don't set >8! */
#define POWERLIMIT 6
#define SCORELIMIT 99999999 // 99 million
struct CreatureStruct
{ ABOOL alive, visible;
SBYTE x, y, deltax, deltay,
pos, // dogs, monkeys, octopi
dir, // octopi, bulls, frogs, birds
tonguedir, // frogs, octopi
tonguex; // frogs
UBYTE speed, last, oldlast, species,
dormant, // dogs, frogs
frame, // birds, missiles
journey, going, then, // otters
subspecies, // camels, fragments
player; // drips, missiles, birds, dogs
ULONG score;
};
struct MagnetStruct
{ ABOOL alive;
SBYTE x, y, player;
UBYTE object;
};
struct ObjectStruct
{ UWORD freq;
ULONG score;
};
struct ProtectorStruct
{ SBYTE x, y, deltax, deltay, relx, rely;
ABOOL alive, last, visible;
};
#define PAIN_BOMB 3
#define PAIN_GLOW 4
#define PAIN_METAL 3
#define PAIN_SLAYER 2
#define PAIN_STONE 2
#define PAIN_TELEPORT 5
#define PAIN_WORMFIRE 5
#define PAIN_WOOD 2
#define PAIN_ENEMYTAIL 3
#define PAIN_FRIENDLYTAIL 2
#define FREQ_CAMELDROP 70
#define FREQ_CAMELTURN 2
#define FREQ_CLOUDFIRE 25
#define FREQ_CLOUDRAIN 15
#define FREQ_FROGFIRE 90
#define FREQ_FROGMOVE 25
#define FREQ_HORSETURN 20
#define FREQ_KANGAROOFIRE 20
#define FREQ_KANGAROOTURN 5
#define FREQ_OCTOPUSFIRE 40
#define FREQ_OCTOPUSSPIN 2
#define FREQ_SALAMANDERFIRE 35
#define FREQ_SLIME 200
#define FREQ_SLIMEGROW 95
#define FREQ_SPIDERTURN 5
#define FREQ_TELEPORT 500